package cn.fscode.code.generator.gen;

import cn.fscode.code.generator.model.ColumnUnit;

/**
 * 表方言(方言表示不同的数据库, 也就是说不同的数据库表规范可能不一样, 比如字段类型就会有差别)处理器
 * @author shenguangyang
 */
public interface DocumentTableHandler {
    DbType dbType();

    /**
     * 纠正表的列类型, 以下是针对mysql例子
     * <p>
     * 比如输入: varchar2(100), 输出: varchar(100) <br/>
     * 比如输入: varchar@33123(100), 输出: varchar(100) <br/>
     * 比如输入: date or datetime, 输出: datetime(0) <br/>
     * </p>
     * @param columnType 输入的列类型
     * @return 纠正后的列类型
     */
    default ColumnUnit getColumnUnit(String columnType) {
        return null;
    }

    /**
     * 将表列类型转成java类型
     * @param tableColumnType 表类型
     * @return java字段类型
     */
    String toJavaFieldType(String tableColumnType);
}
